// BPMN设计器中文标签提供者
// 由于LabelProvider路径可能不存在，我们直接创建一个简单的标签提供者

export default class ChineseLabelProvider {
  constructor(eventBus, translate) {
    this.eventBus = eventBus
    this.translate = translate
    
    // 中文标签映射
    this.chineseLabels = {
      // 开始事件
      'bpmn:StartEvent': '开始事件',
      'bpmn:StartEvent_None': '开始事件',
      'bpmn:StartEvent_Timer': '定时开始事件',
      'bpmn:StartEvent_Message': '消息开始事件',
      'bpmn:StartEvent_Signal': '信号开始事件',
      'bpmn:StartEvent_Error': '错误开始事件',
      'bpmn:StartEvent_Escalation': '升级开始事件',
      'bpmn:StartEvent_Conditional': '条件开始事件',
      'bpmn:StartEvent_Link': '链接开始事件',
      'bpmn:StartEvent_Compensation': '补偿开始事件',

      // 结束事件
      'bpmn:EndEvent': '结束事件',
      'bpmn:EndEvent_None': '结束事件',
      'bpmn:EndEvent_Terminate': '终止结束事件',
      'bpmn:EndEvent_Message': '消息结束事件',
      'bpmn:EndEvent_Signal': '信号结束事件',
      'bpmn:EndEvent_Error': '错误结束事件',
      'bpmn:EndEvent_Escalation': '升级结束事件',
      'bpmn:EndEvent_Compensation': '补偿结束事件',

      // 中间事件
      'bpmn:IntermediateThrowEvent': '中间抛出事件',
      'bpmn:IntermediateCatchEvent': '中间捕获事件',
      'bpmn:IntermediateThrowEvent_None': '中间抛出事件',
      'bpmn:IntermediateCatchEvent_None': '中间捕获事件',
      'bpmn:IntermediateThrowEvent_Message': '消息中间抛出事件',
      'bpmn:IntermediateCatchEvent_Message': '消息中间捕获事件',
      'bpmn:IntermediateThrowEvent_Signal': '信号中间抛出事件',
      'bpmn:IntermediateCatchEvent_Signal': '信号中间捕获事件',
      'bpmn:IntermediateThrowEvent_Timer': '定时中间抛出事件',
      'bpmn:IntermediateCatchEvent_Timer': '定时中间捕获事件',
      'bpmn:IntermediateThrowEvent_Error': '错误中间抛出事件',
      'bpmn:IntermediateCatchEvent_Error': '错误中间捕获事件',
      'bpmn:IntermediateThrowEvent_Escalation': '升级中间抛出事件',
      'bpmn:IntermediateCatchEvent_Escalation': '升级中间捕获事件',
      'bpmn:IntermediateThrowEvent_Compensation': '补偿中间抛出事件',
      'bpmn:IntermediateCatchEvent_Compensation': '补偿中间捕获事件',
      'bpmn:IntermediateThrowEvent_Conditional': '条件中间抛出事件',
      'bpmn:IntermediateCatchEvent_Conditional': '条件中间捕获事件',
      'bpmn:IntermediateThrowEvent_Link': '链接中间抛出事件',
      'bpmn:IntermediateCatchEvent_Link': '链接中间捕获事件',

      // 边界事件
      'bpmn:BoundaryEvent': '边界事件',
      'bpmn:BoundaryEvent_Timer': '定时边界事件',
      'bpmn:BoundaryEvent_Message': '消息边界事件',
      'bpmn:BoundaryEvent_Signal': '信号边界事件',
      'bpmn:BoundaryEvent_Error': '错误边界事件',
      'bpmn:BoundaryEvent_Escalation': '升级边界事件',
      'bpmn:BoundaryEvent_Compensation': '补偿边界事件',
      'bpmn:BoundaryEvent_Conditional': '条件边界事件',

      // 任务
      'bpmn:Task': '任务',
      'bpmn:UserTask': '用户任务',
      'bpmn:ServiceTask': '服务任务',
      'bpmn:ScriptTask': '脚本任务',
      'bpmn:ManualTask': '手工任务',
      'bpmn:BusinessRuleTask': '业务规则任务',
      'bpmn:SendTask': '发送任务',
      'bpmn:ReceiveTask': '接收任务',

      // 网关
      'bpmn:ExclusiveGateway': '排他网关',
      'bpmn:ParallelGateway': '并行网关',
      'bpmn:InclusiveGateway': '包容网关',
      'bpmn:EventBasedGateway': '事件网关',
      'bpmn:ComplexGateway': '复杂网关',

      // 子流程
      'bpmn:SubProcess': '子流程',
      'bpmn:CallActivity': '调用活动',

      // 数据对象
      'bpmn:DataObject': '数据对象',
      'bpmn:DataStore': '数据存储',
      'bpmn:DataObjectReference': '数据对象引用',
      'bpmn:DataStoreReference': '数据存储引用',

      // 其他元素
      'bpmn:TextAnnotation': '文本注释',
      'bpmn:Group': '组',
      'bpmn:Association': '关联',
      'bpmn:SequenceFlow': '顺序流',
      'bpmn:MessageFlow': '消息流',
      'bpmn:DataAssociation': '数据关联',
      'bpmn:DataInputAssociation': '数据输入关联',
      'bpmn:DataOutputAssociation': '数据输出关联',

      // 泳道
      'bpmn:Participant': '参与者',
      'bpmn:Lane': '泳道',

      // 流程
      'bpmn:Process': '流程',
      'bpmn:Collaboration': '协作',
      'bpmn:Choreography': '编排',
      'bpmn:Conversation': '对话',
      'bpmn:ConversationNode': '对话节点',
      'bpmn:ConversationLink': '对话链接',

      // 消息
      'bpmn:Message': '消息',
      'bpmn:Interface': '接口',
      'bpmn:Operation': '操作',
      'bpmn:ItemDefinition': '项目定义',
      'bpmn:Error': '错误',
      'bpmn:Escalation': '升级',
      'bpmn:Signal': '信号',
      'bpmn:Resource': '资源',
      'bpmn:ResourceRole': '资源角色',
      'bpmn:Performer': '执行者',
      'bpmn:HumanPerformer': '人工执行者',
      'bpmn:PotentialOwner': '潜在所有者'
    }
  }

  // 获取中文标签
  getLabel(element) {
    const type = element.type
    return this.chineseLabels[type] || type
  }
}

// 注册标签提供者
ChineseLabelProvider.$inject = ['eventBus', 'translate']
